<?php

/**
 * @desc Amins list.
 *
 */
class Security_Backend_Admins_List extends Backend_Component_List
{
    
    /**
     * @desc Primary key name.
     *
     * @var mixed
     */
    protected $_key = 'id';
    
    /**
     * Количество записей, выводимых на странице.
     *
     * @var integer
     */
    protected $_per_page = 20;

    /**
     * Наименования колонок списка.
     *
     * @var array
     */
    protected $_columns = array('name', 'email');
    
    /**
     * Наименование поля, по которому нужно упорядочивать записи.
     *
     * @var string
     */
    protected $_order = 'name';
    
    
    /**
     * Формирует запрос выборки записей страницы.
     *
     * @return  string
     */
    protected function _getQueryBody()
    {
        $query = '
            SELECT SQL_CALC_FOUND_ROWS
                   `s_s`.`id`,
                   `s_a`.`name`, 
                   `s_s`.`email`
              FROM
                   `system_admin` `s_a`, `system_subject` `s_s`
             WHERE
                   `s_a`.`subject_id` = `s_s`.`id`
            ' . $this->_getOrder();
        return $query;
    }
    
    /**
    * @desc Desable admin to delete self.
    *
    * @return  array
    */
   protected function _getDisabled() 
   {
       return array(
           'delete' => array(
               array('id' => Security_Session::getSubjectId(Security_Subject::ADMIN)),
           )
       );
   }
        
}
